#pragma once


#include"Hash.h"

template<class K>
class Set
{
	struct setofT
	{
		const K& operator()(const K& key)
		{
			return key;
		}
	};
public:
	typedef typename HashTable<K, K, setofT>::const_iterator iterator;
	typedef typename HashTable<K,K, setofT>:: const_iterator const_iterator;


	pair<const_iterator,bool> insert(const K& data)
	{
		pair<typename HashTable<K, K, setofT>::const_iterator, bool> ret = _ht.insert(data);
		return make_pair(ret.first, ret.second);
	}

	const_iterator begin()
	{
		return _ht.begin();
	}

	const_iterator end()
	{
		return _ht.end();
	}

private:
	HashTable<K, K, setofT> _ht;
};
